package com.liam.chinesevietnamesecorpus.dto;

import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;

/**
 * 语料库更新数据传输对象
 * 
 * @author Liam
 */
@Data
public class CorpusLibraryUpdateDTO {

    /**
     * 语料库名称
     */
    @Size(max = 100, message = "语料库名称长度不能超过100字符")
    private String name;

    /**
     * 语料库描述
     */
    @Size(max = 500, message = "语料库描述长度不能超过500字符")
    private String description;

    /**
     * 领域分类
     */
    @Size(max = 50, message = "领域分类长度不能超过50字符")
    private String domain;

    /**
     * 源语言
     */
    @Pattern(regexp = "^(zh|en|vi|ja|ko)$", message = "源语言只能是zh、en、vi、ja、ko")
    private String sourceLang;

    /**
     * 目标语言
     */
    @Pattern(regexp = "^(zh|en|vi|ja|ko)$", message = "目标语言只能是zh、en、vi、ja、ko")
    private String targetLang;

    /**
     * 状态
     */
    @Pattern(regexp = "^(active|inactive|archived)$", message = "状态只能是active、inactive或archived")
    private String status;
}
